home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 2608A.ZIP / GP.ZIP / CHKBP.SRC < prev    next >
Text File  |  1990-11-03  |  27KB  |  1,070 lines

  1. ;\|
  2. ;CHKBP.SRC     Translated from CHKBP.EDT by Roger Mathew's EDT2SRC Ver 4.11
  3. ;CHECK_UP 11:59:28 AM   3/ 6/90   |
  4. DO_DEFINES:
  5.     define(CTR2|N|1||)
  6.     define(CTR6|N|2||)
  7.     define(fld_lctr|N|2||)
  8.     define(ISITCLIN|A|1||)
  9.     define(FLAG|A|1||)
  10.     define(YES.NO|A|1||)
  11.     define(CTR3|N|1||)
  12.     define(MEM_NAME_CHK|A|27||)
  13.     define(PROC4|A|1||)
  14.     define(REF_CTR|N|2||)
  15.     define(MEM_DOC2|N|1||)
  16.     define(CON_CTR|N|2||)
  17.     define(EXTRAS|N|3||)
  18.     define(CON_NUM|N|3||)
  19.     define(CLIN_NUM|N|3||)
  20.     define(EMERG_NUM|N|3||)
  21.     define(ISIT_EMER|A|1||)
  22.     define(MEM_DOC|A|1||)
  23.     define(NY|A|1||)
  24.     define(AGE|N|2||)
  25.     define(BP_DROP|N|2||)
  26.     define(MEM_CTR|N|1||)
  27.     define(FBS_ADD|N|5|2|)
  28.     define(MEM_BP_AGE|N|3||)
  29.     define(AOD|A|1||15)
  30.     define(TD|S|8||)
  31.     define(MN|A|30||15)
  32.     define(DO|A|8||15)
  33.     define(QU|A|10||15)
  34.     define(DS|A|30||15)
  35.     define(QTY|N|3||15)
  36.     define(ISN|N|3||15)
  37.     define(CTR|N|2||)
  38.     define(CTR2|N|2||)
  39.     define(LNE.LNGTH|N|2||)
  40.     define(OK|A|1||)
  41.     define(LNE.LN2|N|2||)
  42.     define(NUM.MSG|N|2||)
  43.     define(MESSAGE|A|78||15)
  44.     define(ENT.MASK|A|10||)
  45.     define(LLC|N|2||)
  46.     define(WD|N|2||)
  47.     define(HT|N|2||)
  48.     define(MCNTR|N|5||)
  49.     define(MCNTR2|N|5||)
  50.     define(MCNTR3|N|5||)
  51.     define(MCNTR4|N|5||)
  52.     define(MEM_DIAB|A|1||)
  53.     define(MEM_NEW|A|1||)
  54.     define(MEM_BP|A|1||)
  55.     define(MEM_THY|A|1||)
  56.     define(MEM_OLD|A|1||)
  57.     define(MEM_RECD|S|8||)
  58.     define(MEM_RECT|S|8||)
  59.     define(MEM_RECB|S|8||)
  60.     define(silly_fld|a|1||)
  61. OPEN_FILES:
  62.     open(PATIENT||0|EXIT)
  63.     open(DIABETIC||1|EXIT)
  64.     open(RP||0|)
  65.     open(RECALLS||0|)
  66.     open(REFER||0|EXIT)
  67.     open(PROCEDE||1|EXIT)
  68.     open(MEMORY||0|EXIT)
  69.     open(GPSETUP||0|EXIT)
  70. STARTCHK:
  71.     trap(S|G|SAVE_RECS)
  72.     trap(D|I)
  73.     trap(C|G|CLR_RECS)
  74.     trap(Q|G|EXIT)
  75.     trap(J|I)
  76. MOUNT_SCRS:
  77.     mount(SCREEN2|S||)
  78.     date(TD|G)
  79. START_UP:
  80.     trap(J|I)
  81.     MEM_BP = ("Y")
  82. PAT.NAME:
  83.     clrlne(1|22)
  84.     enter(PATIENT.NAME||||||||)
  85.     find(G|PATIENT.NAME|PAT.NAME|)
  86.     DIAB_REF = (RECORD.NUMBER)
  87.     find(M|DIAB_REF|NO_DIABX|)
  88. NO_DIAB:
  89.     goto STARTALL
  90. NO_DIAB2:
  91.     gosub GET_AGE
  92.     trap(%|I)
  93.     trap(U|I)
  94.     saves(10)
  95.     window(20|12|2|35)
  96.     ISITCLIN = ("")
  97.     pmsg("Is this a clinic or update?"|1|1|N|N|S|)
  98.     enter(ISITCLIN|"YN"|||Y|Y|N|30|1|N)
  99.     if ISITCLIN = ("Y") then CHECK_DATE = (TD)
  100.     trap(%|D)
  101.     trap(U|D)
  102.     redsp(10)
  103.     MEM_CTR = (9)
  104.     enter(CHECK_DATE||||N|Y|N|||N)
  105.     enter(CHECK_OP||||Y|Y|N|||N)
  106.     if CHECK_OP = ("") reent
  107.     enter(CHK_DOC|"1234"|||N|Y|N|||N)
  108.     enter(DOC_BP1|"1234567890"|||N|Y|N|||N)
  109.     enter(DOC_BP2|"1234567890"|||N|Y|N|||N)
  110.     if DOC_BP1 > (0) then MEM_BP = ("Y")
  111. NO_DIAB3:
  112.     FLAG = ("X")
  113.     trap(J|G|RUN_MEMO)
  114.     enter(SMOK||SMOK_HLP||N|Y|N|||N)
  115.     if SMOK > (0) gosub SMOK_MSG
  116.     enter(EXERCISE||EX_HLP||N|Y|N|||N)
  117.     enter(ALCOHOL||ALC_HLP||N|Y|N|||N)
  118.     enter(ANGINA||ANG_HLP||N|Y|N|||N)
  119.     enter(DIET|"GBP "|DIET_HLP||Y|Y|N|||N)
  120.     enter(WT1||||N|Y|N|||N)
  121.     enter(WT2||||N|Y|N|||N)
  122.     IDEAL_WT = (WT2-81*0.85)
  123.     if WT1 > (IDEAL_WT) gosub WEIGHT
  124.     enter(PROT|" T+"|||N|N|N|||N)
  125.     if PROT => ("+") gosub REF_PROT
  126.     enter(SUG||SUG_HLP||N|N|N|||N)
  127.     if SUG > (0.25) gosub REF_SUG
  128.     enter(BP_CHECK_NUM|" 123"|||N|Y|N|||N)
  129.     enter(BP1||||N|Y|N|||N)
  130.     enter(BP2||||N|Y|N|||N)
  131.     enter(BP1S||BPST_HLP||N|Y|N|||N)
  132.     gosub BP_CHECK
  133.     enter(PULSE||||N|Y|N|||N)
  134.     if PULSE > (120) gosub FAST
  135.     if PULSE < (56) gosub SLOW
  136.     enter(REG|" YN"|REG_HLP||Y|Y|N|||N)
  137.     if REG = ("N") then enter(APEX||||N|Y|N|||N)
  138.     if APEX <> (0) then if APEX > (120) gosub FAST
  139.     if APEX <> (0) then if APEX < (56) gosub SLOW
  140.     enter(OEDEMA|" 123"|OED_HLP||N|Y|N|||N)
  141.     enter(FEV||||N|Y|N|||N)
  142.     enter(CHOL||||N|Y|N|||N)
  143.     enter(COMMENT1||||Y|Y|N|||N)
  144.     enter(COMMENT2||||Y|Y|N|||N)
  145.     gosub DRUGSCH
  146.     enter(DRUGS_CHECKED|"NY"|||Y|Y|N|||N)
  147.     enter(REF_CHECK|"NY"|||Y|Y|N|||N)
  148.     NEXT_CHECK = (CHECK_DATE+186)
  149.     enter(NEXT_CHECK||||N|Y|N|||N)
  150.     YES.NO = ("")
  151.     enter(YES.NO|"YN"|||Y|Y|N|||N)
  152.     if YES.NO = ("Y") gosub PRINT
  153. SAVE_RECS:
  154.     if RECORD.NUMBER = (0) goto PAT.NAME
  155. SAVE_DONE:
  156.     COD.REF = (RECORD.NUMBER)
  157.     find(M|COD.REF|NOCOD|)
  158.     COD.D[9] = (NEXT_CHECK)
  159.     COD.D[7] = (0)
  160.     save(RECALLS|N|Y)
  161.     DIAB_REF = (RECORD.NUMBER)
  162.     CHECK_TYPE = (4)
  163.     save(DIABETIC|N|Y)
  164.     find(M|RECORD.NUMBER|EXIT|)
  165.     save(PATIENT|N|Y)
  166.     if FLAG = ("Y") then run("recmenu")
  167.     FLAG = ("")
  168. STARTX:
  169.     MEM_DIAB = ("")
  170.     MEM_NEW = ("")
  171.     MEM_BP = ("")
  172.     MEM_THY = ("")
  173.     MEM_CTR = (0)
  174.     MEM_RECD = (0)
  175.     MEM_NAME_CHK = ("")
  176.     MEM_RECT = (0)
  177.     MEM_CTR = (0)
  178.     MEM_OLD = ("")
  179.     MEM_RECB = (0)
  180.     AGE = (0)
  181.     BP_DROP = (0)
  182.     FBS_ADD = (0)
  183.     MEM_BP_AGE = (0)
  184.     for(CTR|12|23|1)
  185.         {
  186.         clrlne(1|CTR)
  187.         }
  188.     pmsg("F1 - Help  F2 - Memo  [Ctrl-Y]- Print"|1|24|N|N|S|)
  189.     clr(PATIENT|B)
  190.     goto START_UP
  191. DEL_RECS:
  192.     del(DIABETIC|Y|)
  193.     clr(PATIENT|B)
  194.     goto STARTX
  195. CLR_RECS:
  196.     clr(PATIENT|B)
  197.     clr(DIABETIC|B)
  198.     goto STARTX
  199. EXIT:
  200.     if FLAG = ("X") do
  201.         {
  202.         FLAG = ("Y")
  203.         goto SAVE_DONE
  204.         }
  205.     run("recmenu")
  206. PRT.MSG:
  207.     LNE.LNGTH = (0)
  208.     for(MCNTR|1|NUM.MSG|1)
  209.         {
  210.         LNE.LN2 =siz(A|MESSAGE[MCNTR])
  211.         if LNE.LN2 > (LNE.LNGTH) then LNE.LNGTH = (LNE.LN2)
  212.         }
  213.     NUM.MSG = (NUM.MSG + 1)
  214.     if LNE.LNGTH < (26) then LNE.LNGTH = (26)
  215.     LNE.LNGTH = (LNE.LNGTH + 4)
  216.     LLC = (40 - (LNE.LNGTH / 2))
  217.     HT = (NUM.MSG + 3)
  218.     WD = (LNE.LNGTH + 1)
  219.     saves(1)
  220.     window(LLC|24|HT|WD)
  221.     NUM.MSG = (NUM.MSG - 1)
  222.     pmsg(""||||||)
  223.     for(MCNTR|1|NUM.MSG|1)
  224.         {
  225.         pmsg(MESSAGE[MCNTR]|3||N|N|S|)
  226.         }
  227.     pmsg("Press any key to continue"|3||Y|N|S|)
  228.     redsp(1)
  229.     ret
  230. NO_DIABX:
  231.     clr(DIABETIC|B)
  232.     MESSAGE[1] = ("NO CHECK UP RECORD FOR THIS PATIENT")
  233.     NUM.MSG = (1)
  234.     gosub PRT.MSG
  235.     goto NO_DIAB
  236. SEEALL:
  237. STARTALL1:
  238. STARTALL:
  239.     if RECORD.NUMBER = (0) goto ENDIT
  240.     COD.REF = (RECORD.NUMBER)
  241.     find(M|COD.REF|NEXTALL2|)
  242.     MEM_RECB = (COD.D[9])
  243. NEXTALL2:
  244.     RP.REF = (RECORD.NUMBER)
  245.     find(M|RP.REF|ENDITX|)
  246.     CTR = (1)
  247. TESTALL:
  248.     CTR2 = (CTR+11)
  249.     if CTR2 = (23) goto ENDIT
  250.     AOD[CTR] = (AUTO.ON.DEMAND)
  251.     MN[CTR] = (MEDICATION)
  252.     DO[CTR] = (DOSE)
  253.     QU[CTR] = (QUANTITY)
  254.     DS[CTR] = (DIRECTIONS)
  255.     QTY[CTR] = (RP.DISP.QTY)
  256.     ISN[CTR] = (ISSUE.NO)
  257.     trim(MN[CTR]|T)
  258.     trim(QU[CTR]|T)
  259.     just(QU[CTR]|L)
  260.     trim(DO[CTR]|T)
  261.     just(DO[CTR]|L)
  262.     trim(DS[CTR]|T)
  263.     just(DS[CTR]|L)
  264.     pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  265.     silly_fld = ("")
  266.     find(N|RP|ENDIT|)
  267.     if RP.REF <> (RECORD.NUMBER) goto ENDIT
  268.     CTR = (CTR+1)
  269.     goto TESTALL
  270. CLEARXALL:
  271.     clr(RP|B)
  272.     clr(RECALLS|B)
  273.     clrmem(AOD|15)
  274.     clrmem(MN|15)
  275.     clrmem(DO|15)
  276.     clrmem(QU|15)
  277.     clrmem(DS|15)
  278.     clrmem(QTY|15)
  279.     clrmem(ISN|15)
  280.     ret
  281. ENDIT:
  282.     find(M|RECORD.NUMBER|PAT.NAME|)
  283.     DIAB_REF = (RECORD.NUMBER)
  284.     find(M|DIAB_REF|NO_DIAB2|)
  285.     goto NO_DIAB2
  286. ENDITX:
  287.     MESSAGE[1] = ("NO DRUGS ON REPEAT")
  288.     NUM.MSG = (1)
  289.     gosub PRT.MSG
  290.     goto ENDIT
  291. GET_AGE:
  292.     AGE = (TD-DATE.OF.BIRTH/365)
  293.     ret
  294. BP_CHECK:
  295.     if MEM_BP = ("Y") do
  296.         {
  297.         if BP_CHECK_NUM => (2) do
  298.             {
  299.             if BP1 > (DOC_BP1) gosub REFER_BP
  300.             if BP2 > (DOC_BP2) gosub REFER_BP
  301.             BP_DROP = (BP1-BP1S)
  302.             if BP_DROP > (20) gosub REFER_BP
  303.             }
  304.         ret
  305.         }
  306.     else
  307.         {
  308.         if BP_CHECK_NUM = (2) do
  309.             {
  310.             if BP1 > (AGE+110) gosub REFER_BP
  311.             }
  312.         if BP2 > (105) gosub REFER_BP
  313.         BP_DROP = (BP1-BP1S)
  314.         if BP_DROP > (20) gosub REFER_BP
  315.         }
  316.     ret
  317. REF_FBS:
  318.     if FBS_CHECK_NUM = (2) do
  319.         {
  320.         FBS_ADD = (FBS+FBS2)
  321.         if FBS_ADD > (14) gosub FBS_MSG
  322.         }
  323.     ret
  324. REF_HBA:
  325.     if HBA > (8) gosub HBA_MSG
  326.     ret
  327. SMOK_HLP:
  328.     MESSAGE[1] = ("Number per day eg 16")
  329.     NUM.MSG = (1)
  330.     gosub PRT.MSG
  331.     ret
  332. SMOK_MSG:
  333.     MESSAGE[1] = ("There is a risk of cancer,heart disease,gangrene,and bronchitis")
  334.     NUM.MSG = (1)
  335.     gosub PRT.MSG
  336.     ret
  337. REF_PROT:
  338.     MESSAGE[1] = ("If there is more than a trace -send sample for orgs and sens.")
  339.     MESSAGE[2] = ("Refer to Dr if protein persists etc")
  340.     NUM.MSG = (2)
  341.     gosub PRT.MSG
  342.     ret
  343. SUG_HLP:
  344.     MESSAGE[1] = ("Enter sugar in urine as a decimal eg 1/4 = .25")
  345.     NUM.MSG = (1)
  346.     gosub PRT.MSG
  347.     ret
  348. REF_SUG:
  349.     MESSAGE[1] = ("Do a blood sugar.If high refer to Dr.")
  350.     MESSAGE[2] = ("If patient is a diabetic refer to Dr if more than a third of tests over .25")
  351.     NUM.MSG = (2)
  352.     gosub PRT.MSG
  353.     ret
  354. REG_HLP:
  355.     MESSAGE[1] = ("Enter a Y if regular or a N if not. Do apical rate if N")
  356.     NUM.MSG = (1)
  357.     gosub PRT.MSG
  358.     ret
  359. REFER_BP:
  360.     MESSAGE[1] = ("There is a definate BP problem here - refer to Dr.")
  361.     NUM.MSG = (1)
  362.     REF_CHECK = ("Y")
  363.     gosub PRT.MSG
  364.     ret
  365. BPST_HLP:
  366.     MESSAGE[1] = ("Enter standing systolic - It should not drop more than 20")
  367.     NUM.MSG = (1)
  368.     gosub PRT.MSG
  369.     ret
  370. DIET_HLP:
  371.     MESSAGE[1] = ("G = Good diet B = Bad diet P = Poor")
  372.     NUM.MSG = (1)
  373.     gosub PRT.MSG
  374.     ret
  375. EX_HLP:
  376.     MESSAGE[1] = ("Enter a number for hours per week exercise")
  377.     NUM.MSG = (1)
  378.     gosub PRT.MSG
  379.     ret
  380. FBS_MSG:
  381.     MESSAGE[1] = ("These are too high - refer to Dr.")
  382.     NUM.MSG = (1)
  383.     gosub PRT.MSG
  384.     REF_CHECK = ("Y")
  385.     ret
  386. HBA_MSG:
  387.     MESSAGE[1] = ("Poor control here - refer to Dr.")
  388.     NUM.MSG = (1)
  389.     gosub PRT.MSG
  390.     REF_CHECK = ("Y")
  391.     ret
  392. VIS_HLP:
  393.     MESSAGE[1] = ("Use Snellen test type eg 6 ")
  394.     NUM.MSG = (1)
  395.     gosub PRT.MSG
  396.     ret
  397. RET_HLP:
  398.     MESSAGE[1] = ("Retinopathy 0,1,2,3,4,5 ")
  399.     NUM.MSG = (1)
  400.     gosub PRT.MSG
  401.     ret
  402. FOOT_HLP:
  403.     MESSAGE[1] = ("Y = Pulses present N = No pulses")
  404.     NUM.MSG = (1)
  405.     gosub PRT.MSG
  406.     ret
  407. SENS_HLP:
  408.     MESSAGE[1] = ("Y = Tuning fork sensation present N = Not present")
  409.     NUM.MSG = (1)
  410.     gosub PRT.MSG
  411.     ret
  412. DRUGSCH:
  413.     MESSAGE[1] = ("NOW CHECK PATIENTS DRUG THERAPY IS CORRECT")
  414.     NUM.MSG = (1)
  415.     gosub PRT.MSG
  416.     mount(DRUGSCR|S)
  417.     RP.REF = (RECORD.NUMBER)
  418.     find(M|RP.REF|NOSCR|)
  419.     CTR = (17)
  420. NEXTRPS:
  421.     trim(MEDICATION|T)
  422.     if CTR = (29) do
  423.         {
  424.         pmsg("There are more drugs"|65|20|N|N|D|)
  425.         goto NOSCR
  426.         }
  427.     if CTR => (23) do
  428.         {
  429.         CTR6 = (CTR-6)
  430.         pmsg(MEDICATION|31|CTR6|N|N|D|)
  431.         }
  432.     else
  433.         {
  434.         pmsg(MEDICATION|1|CTR|N|N|D|)
  435.         }
  436.     CTR = (CTR+1)
  437.     find(N|RP|NOSCR|)
  438.     if RP.REF <> (RECORD.NUMBER) goto NOSCR
  439.     goto NEXTRPS
  440. NOSCR:
  441.     enter(COMMENT1|||NOSCR|Y|Y|N|||N)
  442.     enter(COMMENT2||||Y|Y|N|||N)
  443.     mount(SCREEN2|S)
  444.     ret
  445. NOCOD:
  446.     COD.PAT.NAME = (PATIENT.NAME)
  447.     COD.REF = (RECORD.NUMBER)
  448.     save(RECALLS|N|N)
  449.     find(M|COD.REF||)
  450.     goto SAVE_RECS
  451. RUN_MEMO:
  452.     goto RUN_MEMOX
  453. RUN_MEMOX:
  454.     trap(J|G|EXIT_MEM)
  455.     trap(S|G|SAVE_MEMO)
  456.     trap(D|I)
  457.     trap(C|I)
  458.     trap(Q|G|EXIT_MEM)
  459.     trap(L|G|EXIT_MEM)
  460. MOUNT:
  461.     mount(NEW|S||)
  462. START:
  463.     enter(PATIENT.NAME||||Y|Y|N|||N)
  464.     find(G|PATIENT.NAME|START|)
  465.     PROC_REF = (RECORD.NUMBER)
  466.     find(M|PROC_REF|START2CL|)
  467.     NY = ("")
  468.     pmsg("DO YOU WANT TO UPDATE THE MEMOS FIRST:"|10|20|N|N|S|)
  469.     enter(NY|"YN"|||Y|Y|N|50|20|N)
  470.     if NY = ("Y") goto UPMEMO
  471.     clrlne(1|20)
  472. START2:
  473.     gosub LINE
  474.     if CTR2 = (0) then CTR2 = (1)
  475. SATRT3:
  476.     MEM_DOC = ("")
  477.     for(CTR|CTR2|6|1)
  478.         {
  479.         PROC_DATE[CTR] = (TD)
  480.         PROC_UP = (TD)
  481.         enter(PROC_DATE[CTR]|||SATRT3|N|N|N|||N)
  482.         enter(PROC[CTR]||||Y|Y|N|||N)
  483.         enter(PROC_DOC[CTR]|"12345"|||Y|Y|N|||N)
  484.         MEM_DOC = (PROC_DOC[CTR])
  485.         enter(PROC_OP[CTR]||||Y|Y|N|||N)
  486.         if PROC_OP[CTR] = ("") reent
  487.         if PROC_EX[CTR] = ("") do
  488.             {
  489.             PROC_REF = (RECORD.NUMBER)
  490.             PROC4 =mid(PROC[CTR]|1|1|)
  491.             if PROC4 = ("*") do
  492.                 {
  493.                 PROC_EX[CTR] = ("X")
  494.                 gosub STARTAGAIN
  495.                 save(PROCEDE|N|N)
  496.                 find(M|PROC_REF||)
  497.                 }
  498.             enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  499.             enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  500.             enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  501.             enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  502.             enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  503.             enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  504.             }
  505.         }
  506.     gosub LINE
  507.     for(CTR|1|6|1)
  508.         {
  509.         if PROC[CTR] = ("") then PROC_DATE[CTR] = (0)
  510.         }
  511.     goto SATRT3
  512. SAVE_MEMO:
  513.     for(CTR|1|6|1)
  514.         {
  515.         if PROC[1] = ("") do
  516.             {
  517.             clr(PROCEDE|B)
  518.             goto START
  519.             }
  520.         if PROC[CTR] = ("") do
  521.             {
  522.             PROC_DATE[CTR] = (0)
  523.             PROC_OP[CTR] = ("")
  524.             PROC_DOC[CTR] = ("")
  525.             PROC_DONE[CTR] = ("")
  526.             }
  527.         }
  528.     if PROC_REF = (0) goto START
  529.     PROC_REF = (RECORD.NUMBER)
  530.     if PROC_REF = (0) goto START
  531.     save(PROCEDE|Y|Y|)
  532.     MEM_DOC = ("")
  533.     goto START
  534. EXIT_MEM:
  535.     if PROC[1] = ("") goto RUNPATREC
  536.     for(CTR|1|6|1)
  537.         {
  538.         if PROC[CTR] = ("") do
  539.             {
  540.             PROC_DATE[CTR] = (0)
  541.             PROC_OP[CTR] = ("")
  542.             PROC_DOC[CTR] = ("")
  543.             PROC_DONE[CTR] = ("")
  544.             }
  545.         }
  546.     if PROC_REF > (0) then save(PROCEDE|N|Y)
  547. RUNPATREC:
  548.     trap(S|G|SAVE_RECS)
  549.     trap(D|I)
  550.     trap(C|G|CLR_RECS)
  551.     trap(Q|G|EXIT)
  552.     trap(J|G|RUN_MEMO)
  553.     mount(SCREEN2|S)
  554.     gosub STARTALLXX
  555.     goto PAT.NAME2
  556. LINE:
  557.     for(CTR2|1|6|1)
  558.         {
  559.         if PROC[CTR2] = ("") do
  560.             {
  561.             if CTR2 = (6) do
  562.                 {
  563.                 pops
  564.                 goto SATRT3
  565.                 }
  566.             ret
  567.             }
  568.         }
  569.     CTR = (2)
  570.     if PROC_DATE[1] = (TD) do
  571.         {
  572.         for(CTR3|1|6|1)
  573.             {
  574.             enter(PROC_DONE[CTR3]|" Y"|||Y|Y|N|||N)
  575.             }
  576.         pops
  577.         goto SAVE_MEMO
  578.         }
  579.     for(CTR2|1|5|1)
  580.         {
  581.         PROC[CTR2] = (PROC[CTR])
  582.         PROC_DATE[CTR2] = (PROC_DATE[CTR])
  583.         PROC_OP[CTR2] = (PROC_OP[CTR])
  584.         PROC_DOC[CTR2] = (PROC_DOC[CTR])
  585.         PROC_DONE[CTR2] = (PROC_DONE[CTR])
  586.         CTR = (CTR+1)
  587.         }
  588.     PROC[6] = ("")
  589.     PROC_DATE[6] = (0)
  590.     PROC_OP[6] = ("")
  591.     PROC_DOC[6] = ("")
  592.     PROC_DONE[6] = ("")
  593.     PROC_EX[6] = ("")
  594.     goto LINE
  595.     ret
  596. UPARROW:
  597.     CTR2 = (CTR2-1)
  598.     CTR = (CTR2)
  599.     ret
  600. STARTAGAIN:
  601.     trap(%|I)
  602.     trap(J|I)
  603.     trap(Q|G|EXITX)
  604.     trap(U|I)
  605.     trap(C|I)
  606.     trap(S|I)
  607.     saves(1)
  608.     window(20|15|5|40)
  609.     trap(Q|G|EXITX)
  610.     find(B|HEADING||)
  611.     pmsg("IS IT EMERGENCY:"|1|1|N|N|S|)
  612.     enter(ISIT_EMER|"YN"|||Y|Y|N|20|1|N)
  613.     if ISIT_EMER = ("Y") goto SCR2
  614.     gosub SCREEN2
  615.     CLIN_NUM = (CLIN_NUM)
  616.     pmsg("ENTER SPECIALTY:"|1|2|N|N|S|)
  617.     enter(CLIN_NUM||||N|Y|N|20|2|N)
  618. ADDER:
  619.     REF_COD = (MEM_DOC)
  620.     find(M|REF_COD|EXIT|)
  621.     if ISIT_EMER <> ("Y") do
  622.         {
  623.         CLIN_REF[CLIN_NUM] = (CLIN_REF[CLIN_NUM]+1)
  624.         }
  625.     else
  626.         {
  627.         EMERG_REF[EMERG_NUM] = (EMERG_REF[EMERG_NUM]+1)
  628.         }
  629.     save(REFER|N|Y)
  630.     CLIN_NUM = (0)
  631.     CON_NUM = (0)
  632.     EMERG_NUM = (0)
  633.     ISIT_EMER = ("")1
  634.     redsp(1)
  635.     trap(%|D)
  636.     trap(J|G|EXIT_MEM)
  637.     trap(U|D)
  638.     trap(Q|G|EXIT)
  639.     ret
  640. SCREEN2:
  641.     saves(2)
  642.     window(1|25|24|78)
  643.     for(REF_CTR|1|22|1)
  644.         {
  645.         pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  646.         }
  647.     CON_CTR = (REF_CTR+1)
  648.     for(REF_CTR|1|22|1)
  649.         {
  650.         pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  651.         CON_CTR = (CON_CTR+1)
  652.         }
  653.     pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  654.     enter(CLIN_NUM||||N|Y|N|65|13|N)
  655.     if CLIN_NUM = (0) reent
  656.     if CLIN_NUM > (44) reent
  657.     redsp(2)
  658.     ret
  659. SCREEN3:
  660.     saves(2)
  661.     window(1|25|24|78)
  662.     for(REF_CTR|1|22|1)
  663.         {
  664.         pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  665.         }
  666.     CON_CTR = (REF_CTR+1)
  667.     for(REF_CTR|1|22|1)
  668.         {
  669.         pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  670.         CON_CTR = (CON_CTR+1)
  671.         }
  672.     pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  673.     enter(EMERG_NUM||||N|Y|N|65|13|N)
  674.     if EMERG_NUM = (0) reent
  675.     if EMERG_NUM > (44) reent
  676.     redsp(2)
  677.     ret
  678. SCR2:
  679.     gosub SCREEN3
  680.     EMERG_NUM = (EMERG_NUM)
  681.     pmsg("ENTER SPECIALTY EMERGENCY:"|1|3|N|N|S|)
  682.     enter(EMERG_NUM||||N|Y|N|30|3|N)
  683.     goto ADDER
  684. EXITX:
  685.     goto STARTCHK
  686. UPMEMO:
  687.     enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  688.     enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  689.     enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  690.     enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  691.     enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  692.     enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  693.     clrlne(1|22)
  694.     goto START2
  695. START2CL:
  696.     clr(PROCEDE|B)
  697.     goto START2
  698. PAT.NAME2:
  699.     goto NO_DIAB3
  700. PRINT:
  701.     mount(CHKREP|R|P)
  702.     pset(128|24|24)
  703.     pchr(P|1)
  704.     pfmt(1|||N|N|)
  705.     pfmt(2|||N|N|)
  706.     pfmt(3|||N|N|)
  707.     pfmt(4|||N|N|)
  708.     pfmt(5|||N|N|)
  709.     pfmt(6|||N|N|)
  710.     pfmt(7|||N|N|)
  711.     fld_lctr = (0)
  712.     gosub PRINTRP
  713.     fld_lctr = (fld_lctr+7)
  714.     if fld_lctr = (24) goto MOUNTAGAIN
  715.     if REF_CHECK = ("Y") do
  716.         {
  717.         pmsg(%14;"                          REFERRED TO DOCTOR"|||N|N|P|)
  718.         fld_lctr = (fld_lctr+1)
  719.         }
  720.     CTR3 = (24-fld_lctr)
  721.     if CTR3 <= (0) goto MOUNTAGAIN
  722.     for(CTR2|1|CTR3|1)
  723.         {
  724.         pmsg(""|||N|N|P|)
  725.         }
  726. MOUNTAGAIN:
  727.     mount(SCREEN2|S)
  728.     gosub STARTALLXX
  729.     ret
  730. PRINTRP:
  731.     RP.REF = (RECORD.NUMBER)
  732.     find(M|RP.REF|RETPRINT|)
  733.     CTR = (1)
  734. TESTALLX:
  735.     if CTR = (12) goto RETPRINT
  736.     AOD[CTR] = (AUTO.ON.DEMAND)
  737.     MN[CTR] = (MEDICATION)
  738.     DO[CTR] = (DOSE)
  739.     QU[CTR] = (QUANTITY)
  740.     DS[CTR] = (DIRECTIONS)
  741.     QTY[CTR] = (RP.DISP.QTY)
  742.     ISN[CTR] = (ISSUE.NO)
  743.     trim(MN[CTR]|T)
  744.     trim(QU[CTR]|T)
  745.     just(QU[CTR]|L)
  746.     trim(DO[CTR]|T)
  747.     just(DO[CTR]|L)
  748.     trim(DS[CTR]|T)
  749.     just(DS[CTR]|L)
  750.     pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|||N|N|P|)
  751.     fld_lctr = (fld_lctr+1)
  752.     find(N|RP|RETPRINT|)
  753.     if RP.REF <> (RECORD.NUMBER) goto RETPRINT
  754.     CTR = (CTR+1)
  755.     goto TESTALLX
  756. RETPRINT:
  757.     PROC_REF = (RECORD.NUMBER)
  758.     find(M|PROC_REF|RETPRINTX|)
  759.     for(CTR2|1|6|1)
  760.         {
  761.         if PROC[CTR2] = ("") goto RETPRINTX
  762.         pmsg(PROC_DATE[CTR2];"   ";PROC[CTR2]|||N|N|P|)
  763.         fld_lctr = (fld_lctr+1)
  764.         }
  765. RETPRINTX:
  766.     ret
  767. STARTALLXX:
  768.     if RECORD.NUMBER = (0) goto ENDITXXX
  769.     COD.REF = (RECORD.NUMBER)
  770.     find(M|COD.REF|NEXTALL2XX|)
  771.     MEM_RECD = (COD.D[4])
  772.     MEM_RECT = (COD.D[6])
  773.     MEM_RECB = (COD.D[9])
  774. NEXTALL2XX:
  775.     RP.REF = (RECORD.NUMBER)
  776.     find(M|RP.REF|ENDITXXX|)
  777.     CTR = (1)
  778. TESTALLOP:
  779.     AOD[CTR] = (AUTO.ON.DEMAND)
  780.     MN[CTR] = (MEDICATION)
  781.     DO[CTR] = (DOSE)
  782.     QU[CTR] = (QUANTITY)
  783.     DS[CTR] = (DIRECTIONS)
  784.     QTY[CTR] = (RP.DISP.QTY)
  785.     ISN[CTR] = (ISSUE.NO)
  786.     trim(MN[CTR]|T)
  787.     trim(QU[CTR]|T)
  788.     just(QU[CTR]|L)
  789.     trim(DO[CTR]|T)
  790.     just(DO[CTR]|L)
  791.     trim(DS[CTR]|T)
  792.     just(DS[CTR]|L)
  793.     CTR2 = (CTR+11)
  794.     if CTR2 = (23) goto ENDITXXX
  795.     pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  796.     silly_fld = ("")
  797.     find(N|RP|ENDITXXX|)
  798.     if RP.REF <> (RECORD.NUMBER) goto ENDITXXX
  799.     CTR = (CTR+1)
  800.     goto TESTALLOP
  801. ENDITXXX:
  802.     ret
  803. ALC_HLP:
  804.     MESSAGE[1] = ("ENTER NUMBER OF PINTS A WEEK - 1 PUB GIN=1/2 PINT")
  805.     NUM.MSG = (1)
  806.     gosub PRT.MSG
  807.     ret
  808. ANG_HLP:
  809.     MESSAGE[1] = ("ENTER NUMBER OF ATTACKS PER WEEK")
  810.     NUM.MSG = (1)
  811.     gosub PRT.MSG
  812.     ret
  813. WEIGHT:
  814.     MESSAGE[1] = ("THERE IS AN OBESITY PROBLEM HERE")
  815.     NUM.MSG = (1)
  816.     gosub PRT.MSG
  817.     ret
  818. OED_HLP:
  819.     MESSAGE[1] = ("Graded from 0 to 3")
  820.     NUM.MSG = (1)
  821.     gosub PRT.MSG
  822.     ret
  823. FAST:
  824.     MESSAGE[1] = ("Pulse is too fast - REFER")
  825.     NUM.MSG = (1)
  826.     gosub PRT.MSG
  827.     REF_CHECK = ("Y")
  828.     ret
  829. SLOW:
  830.     MESSAGE[1] = ("Pulse is too slow - do DIGOXIN level and Refer")
  831.     NUM.MSG = (1)
  832.     gosub PRT.MSG
  833.     REF_CHECK = ("Y")
  834.     ret
  835. \STNEW     
  836.  
  837.  
  838.  
  839.  
  840.  
  841.                                  PROCEDURE ENTRY
  842.           ╔═══════════════════════════════════════════════════════════════╗
  843.           ║ &                          <&                     <&         <║
  844.           ║                                                               ║
  845.           ║  Date             Procedure                        Dr Rec Done║
  846.           ║ &         &                                        & &    &   ║
  847.           ║ &         &                                        & &    &   ║
  848.           ║ &         &                                        & &    &   ║
  849.           ║ &         &                                        & &    &   ║
  850.           ║ &         &                                        & &    &   ║
  851.           ║ &         &                                        & &    &   ║
  852.           ╚═══════════════════════════════════════════════════════════════╝
  853.           Esc - Exit and Save V=1 G=2 P=3 N=4 T=5 * for clinic,xray,path
  854.               Y=DONE S=SEE DR C=COL.SCRPT R=REPEAT O=OTHER N=NORMAL
  855.  
  856.  
  857.  
  858.  
  859.  
  860. \
  861. PATIENT.NAME
  862. ADDRESS1
  863. DATE.OF.BIRTH
  864. PROC_DATE[1]
  865. PROC[1]
  866. PROC_DOC[1]
  867. PROC_OP[1]
  868. PROC_DONE[1]
  869. PROC_DATE[2]
  870. PROC[2]
  871. PROC_DOC[2]
  872. PROC_OP[2]
  873. PROC_DONE[2]
  874. PROC_DATE[3]
  875. PROC[3]
  876. PROC_DOC[3]
  877. PROC_OP[3]
  878. PROC_DONE[3]
  879. PROC_DATE[4]
  880. PROC[4]
  881. PROC_DOC[4]
  882. PROC_OP[4]
  883. PROC_DONE[4]
  884. PROC_DATE[5]
  885. PROC[5]
  886. PROC_DOC[5]
  887. PROC_OP[5]
  888. PROC_DONE[5]
  889. PROC_DATE[6]
  890. PROC[6]
  891. PROC_DOC[6]
  892. PROC_OP[6]
  893. PROC_DONE[6]
  894. \
  895. \R CHKREP  
  896. BP CLINIC DETAILS FOR:  &                          :&          ON &        BY &      Dr.&
  897. ================================================================================================================
  898. Smokes :&    Exrcise:&    Alcohol:&    Angina:&    Diet:&   Weight:&        Height:&       Ideal Wt:&
  899. Protein:&      Sugar:&       Drs. Rec. BP:&  /&    BP Chk Num:&  BP:&  /&     Standing Sys:&     Pulse:&  /&/&
  900.                                                                                         Oedema:&   Fev:&
  901.                                        Drugs Checked:&   Tsh:&      Next Check:&
  902. Nurses comments:&                              &                               Nurses Sig:
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944. \
  945. PATIENT.NAME
  946. DATE.OF.BIRTH
  947. TD
  948. CHECK_OP
  949. CHK_DOC
  950. SMOK
  951. EXERCISE
  952. ALCOHOL
  953. ANGINA
  954. DIET
  955. WT1
  956. WT2
  957. IDEAL_WT
  958. PROT
  959. SUG
  960. DOC_BP1
  961. DOC_BP2
  962. BP_CHECK_NUM
  963. BP1
  964. BP2
  965. BP1S
  966. PULSE
  967. REG
  968. APEX
  969. OEDEMA
  970. FEV
  971. DRUGS_CHECKED
  972. TSH
  973. NEXT_CHECK
  974. COMMENT1
  975. COMMENT2
  976. \
  977. \SSSCREEN2 
  978. BP CLINIC       p p p p p p p p p p p p p p p p p p p p p p p p p p p  p p p p p p p p p p( p p) on  p p p p p p p p by  p p p p p p ================
  979. =============================================================== Dr.Num:p p  Rec.Date:p p p p p p p p p Drug
  980. s Checked:p p Refrd:p p Nxt Chk:p p p p p p p p p Prnt N/Y:p p ================================================
  981. =============================== Smokes:p p p     Wt:p p p p p p p    Dr.BP:p p p p/ p p p                        
  982.                 Exerc :p p p     Ht:p p p p p p p   Chk.No:p p                                              
  983. Alcoh :p p p     IW:p p p p p p p       BP:p p p p/ p p p                                        Angina:p p p     Pr
  984. :p p p p p     St.Sys:p p p p                                            Diet  :p p      Su:p p p p p      Pulse
  985. :p p p p:p p:p p p p   Oedema:p p  Fev:p p p p  CHOL:p p p p p p      Com1  :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p     Com2:p p
  986.  p p p p p p p p p p p p p p p p p p p p p p p p p p p p p   ================================================================
  987. ==============                                                                                  
  988.                                                                                                 
  989.                                                                                                 
  990.                                                                                                 
  991.                                                                                                 
  992.                                                                                                 
  993.                                                                                                 
  994.                                                                                                 
  995.                                                                                                 
  996.                                                                                                 
  997.                                                                                                 
  998. \
  999. PATIENT.NAME       27 A 16 1
  1000. DATE.OF.BIRTH      10 D 44 1
  1001. AGE                 2 N 55 1
  1002. CHECK_DATE          8 S 62 1
  1003. CHECK_OP            6 A 74 1
  1004. CHK_DOC             1 N  8 3
  1005. COD.D            9  8 S 20 3
  1006. DRUGS_CHECKED       1 A 43 3
  1007. REF_CHECK           1 A 51 3
  1008. NEXT_CHECK          8 S 61 3
  1009. YES.NO              1 A 79 3
  1010. SMOK                2 N  8 5
  1011. WT1                 52N 18 5
  1012. DOC_BP1             3 N 34 5
  1013. DOC_BP2             3 N 38 5
  1014. EXERCISE            2 N  8 6
  1015. WT2                 52N 18 6
  1016. BP_CHECK_NUM        1 N 34 6
  1017. ALCOHOL             2 N  8 7
  1018. IDEAL_WT            52N 18 7
  1019. BP1                 3 N 34 7
  1020. BP2                 3 N 38 7
  1021. ANGINA              2 N  8 8
  1022. PROT                4 A 18 8
  1023. BP1S                3 N 34 8
  1024. DIET                1 A  8 9
  1025. SUG                 32N 18 9
  1026. PULSE               3 N 34 9
  1027. REG                 1 A 38 9
  1028. APEX                3 N 40 9
  1029. OEDEMA              1 N 53 9
  1030. FEV                 3 N 60 9
  1031. CHOL                42N 70 9
  1032. COMMENT1           30 A  810
  1033. COMMENT2           30 A 4810
  1034. \
  1035. \STDRUGSCR 
  1036.               Digoxin      B-blockers    Diuretics  Tnt + Ca      Ace Inhib
  1037.    ╔═════════════════════════════════════════════════════════════════════════╗
  1038.    ║CHECK║PULSE + APEX    ║FEV          ║OEDEMA    ║ANGINA       ║           ║
  1039.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1040.    ║TESTS║DIGOXIN LEVEL   ║U&E          ║U&E       ║NONE         ║U&E        ║
  1041.    ║     ║U & E           ║             ║URIC ACID ║             ║           ║
  1042.    ║     ║                ║             ║BS        ║             ║           ║
  1043.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1044.    ║SIDE ║NAUSEA,VOMIT    ║COLD EXTREMS ║GOUT      ║HEADACHE     ║DROP       ║
  1045.    ║     ║DIZZY,COLOR VIS.║             ║          ║             ║DRY COUGH  ║
  1046.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1047.    ║REFER║PULSE >120 <56  ║PULSE <50    ║DYSPNEA+  ║ANGINA WORSE ║           ║
  1048.    ║     ║                ║FEV 33% LESS ║          ║             ║           ║
  1049.    ╚═════════════════════════════════════════════════════════════════════════╝
  1050.    Pulse:&  /&/&    Fev:&    Oed:& Angina:&   Com:&
  1051.                Drugs                          Com:&
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. \
  1061. PULSE
  1062. REG
  1063. APEX
  1064. FEV
  1065. OEDEMA
  1066. ANGINA
  1067. COMMENT1
  1068. COMMENT2
  1069. \
  1070.